The present invention relates generally to memory devices and in particular the present invention relates to programming memory devices.
A typical flash memory comprises a memory array that includes a large number of memory cells. Each of the memory cells includes a floating gate embedded in a MOS transistor. The cells are usually grouped into sections called “erase blocks.” Each of the cells within an erase block can be electrically programmed selectively by tunneling charges to the floating gate. The negative charge is typically removed from the floating gate by a block erase operation, wherein all floating gate memory cells in the erase block are erased in a single operation.
Two common types of flash memory array architectures are the “NAND” and “NOR” architectures, so called for the resemblance which the basic memory cell configuration of each architecture has to a basic NAND or NOR gate circuit, respectively. In the NOR array architecture, the floating gate memory cells of the memory array are arranged in a matrix. The gates of each floating gate memory cell of the array matrix are connected by rows to word select lines (word lines) and their drains are connected to column bit lines. The source of each floating gate memory cell is typically connected to a common source line. The NOR architecture floating gate memory array is accessed by a row decoder activating a row of floating gate memory cells by selecting the word line connected to their gates. The row of selected memory cells then place their stored data values on the column bit lines by flowing a differing current if in a programmed state or non-programmed state from the connected source line to the connected column bit lines.
A NAND array architecture also arranges its array of floating gate memory cells in a matrix such that the gates of each floating gate memory cell of the array are connected by rows to word lines. However, each memory cell is not directly connected to a source line and a column bit line. Instead, the memory cells of the array are arranged together in strings, typically of 8, 16, 32, or more each, where the memory cells in the string are connected together in series, source to drain, between a common source line and a column bit line. The NAND architecture floating gate memory array is then accessed by a row decoder activating a row of floating gate memory cells by selecting the word select line connected to their gates. The word lines connected to the gates of the unselected memory cells of each string are driven to operate as pass transistors, allowing them to pass current in a manner that is unrestricted by their stored data values. Current then flows from the source line to the column bit line through each floating gate memory cell of the series connected string, restricted only by the memory cells of each string that are selected to be read. Thereby placing the current encoded stored data values of the row of selected memory cells on the column bit lines.
Two common programming techniques for NAND architecture Flash memories are the “boosted bit line” and the “boosted source line.” In these techniques a high voltage is applied to the gate of a selected floating gate transistor of a string, while the remaining transistors are turned on in a pass through mode, from either the connected bit line or from a source line connected to the opposite end of the string of floating gate transistors.
As devices continue to reduce dimensions, the ranges of threshold voltage corresponding to individual data values are also becoming smaller. This makes programming more difficult as the differentiation between data values becomes less distinct.